import java.util.Scanner;

public class Main5 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt(), b = in.nextInt(), s = in.nextInt();
        int n = in.nextInt();
        int[] load = new int[n];
        for (int i = 0; i < n; i++) {
            load[i] = in.nextInt();
        }
        int[] m = new int[n - 1];
        for (int i = 0; i < n - 1; i++) {
            m[i] = in.nextInt();
        }
        int ret = a;
        boolean flag = true; // flag 新的开始
        for (int i = 0; i < n - 1; i++) {
            if (flag) {
                ret += (Math.max(load[i] - s, 0)) * b;
            }
            if ((s - load[i]) * b > a) {
                ret += a;
                flag = true;
            } else {
                ret += (load[i] + m[i] - s) * b;
                flag = false;
            }
//            if ((load[i] + m[i] - s) * b < a) { // 不下车
//                ret += (load[i] + m[i] - s) * b;
//            } else { // 下车
//                ret += load[i] + a;
//            }
        }
        if (flag) {
            ret += (Math.max(load[n - 1] - s, 0)) * b;
        } else {
            ret += load[n - 1] * b;
        }

        System.out.println(ret);
    }
}
